home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1991-04-03 | 7.0 KB | 271 lines | [ TEXT/PJMM]
{ This file has been processed by The THINK Pascal Source Converter, v1.1. } {} {} {Created: Monday, March 20, 1989 at 9:06 AM} { DatabaseAccess.p} { Pascal Interface to the Macintosh Libraries} {} { Copyright Apple Computer, Inc. 1989-1991} { All rights reserved} {} {} {$IFC UNDEFINED UsingIncludes} {$SETC UsingIncludes := 0} {$ENDC} unit DatabaseAccess; interface uses Types, OSUtils, Files, Resources; const { error and status codes } rcDBNull = -800; rcDBValue = -801; rcDBError = -802; rcDBBadType = -803; rcDBBreak = -804; rcDBExec = -805; rcDBBadSessID = -806; rcDBBadSessNum = -807; { bad session number for DBGetConnInfo } rcDBBadDDEV = -808; { bad ddev specified on DBInit } rcDBAsyncNotSupp = -809; { ddev does not support async calls } rcDBBadAsyncPB = -810; { tried to kill a bad pb } rcDBNoHandler = -811; { no app handler for specified data type } rcDBWrongVersion = -812; { incompatible versions } rcDBPackNotInited = -813; { attempt to call other routine before InitDBPack } { messages for status functions for DBStartQuery } kDBUpdateWind = 0; kDBAboutToInit = 1; kDBInitComplete = 2; kDBSendComplete = 3; kDBExecComplete = 4; kDBStartQueryComplete = 5; { messages for status functions for DBGetQueryResults } kDBGetItemComplete = 6; kDBGetQueryResultsComplete = 7; typeNone = 'none'; typeDate = 'date'; typeTime = 'time'; typeTimeStamp = 'tims'; typeDecimal = 'deci'; typeMoney = 'mone'; typeVChar = 'vcha'; typeVBin = 'vbin'; typeLChar = 'lcha'; typeLBin = 'lbin'; typeDiscard = 'disc'; { "dummy" types for DBResultsToText } typeUnknown = 'unkn'; typeColBreak = 'colb'; typeRowBreak = 'rowb'; { pass this in to DBGetItem for any data type } typeAnyType = 0; { infinite timeout value for DBGetItem } kDBWaitForever = -1; { flags for DBGetItem } kDBLastColFlag = $0001; kDBNullFlag = $0004; type DBType = OSType; { structure for asynchronous parameter block } DBAsyncParamBlockRec = record completionProc: ProcPtr; { pointer to completion routine } result: OSErr; { result of call } userRef: LONGINT; { for application's use } ddevRef: LONGINT; { for ddev's use } reserved: LONGINT; { for internal use } end; DBAsyncParmBlkPtr = ^DBAsyncParamBlockRec; { structure for resource list in QueryRecord } ResListElem = record theType: ResType; id: INTEGER; end; ResListPtr = ^ResListArray; ResListHandle = ^ResListPtr; ResListArray = array[0..255] of ResListElem; { structure for query list in QueryRecord } QueryListPtr = ^QueryArray; QueryListHandle = ^QueryListPtr; QueryArray = array[0..255] of Handle; QueryPtr = ^QueryRecord; QueryHandle = ^QueryPtr; QueryRecord = record version: INTEGER; { version } id: INTEGER; { id of 'qrsc' this came from } queryProc: Handle; { handle to query def proc } ddevName: Str63; { ddev name } host: Str255; { host name } user: Str255; { user name } password: Str255; { password } connStr: Str255; { connection string } currQuery: INTEGER; { index of current query } numQueries: INTEGER; { number of queries in list } queryList: QueryListHandle; { handle to array of handles to text } numRes: INTEGER; { number of resources in list } resList: ResListHandle; { handle to array of resource list elements } dataHandle: Handle; { for use by query def proc } refCon: LONGINT; { for use by application } end; { structure of column types array in ResultsRecord } ColTypesPtr = ^ColTypesArray; ColTypesHandle = ^ColTypesPtr; ColTypesArray = array[0..255] of DBType; { structure for column info in ResultsRecord } DBColInfoRecord = record len: INTEGER; places: INTEGER; flags: INTEGER; end; ColInfoPtr = ^ColInfoArray; ColInfoHandle = ^ColInfoPtr; ColInfoArray = array[0..255] of DBColInfoRecord; ResultsRecord = record numRows: INTEGER; { number of rows in result } numCols: INTEGER; { number of columns per row } colTypes: ColTypesHandle; { data type array } colData: Handle; { actual results } colInfo: ColInfoHandle; { DBColInfoRecord array } end; function InitDBPack: OSErr; inline $3F3C, $0004, $303C, $0100, $A82F; function DBInit (var sessID: LONGINT; ddevName: Str63; host, user, passwd, connStr: Str255; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0E02, $A82F; function DBEnd (sessID: LONGINT; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0403, $A82F; function DBGetConnInfo (sessID: LONGINT; sessNum: INTEGER; var returnedID, version: LONGINT; var ddevName: Str63; var host, user, network, connStr: Str255; var start: LONGINT; var state: OSErr; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $1704, $A82F; function DBGetSessionNum (sessID: LONGINT; var sessNum: INTEGER; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0605, $A82F; function DBSend (sessID: LONGINT; text: Ptr; len: INTEGER; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0706, $A82F; function DBSendItem (sessID: LONGINT; dataType: DBType; len, places, flags: INTEGER; buffer: Ptr; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0B07, $A82F; function DBExec (sessID: LONGINT; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0408, $A82F; function DBState (sessID: LONGINT; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0409, $A82F; function DBGetErr (sessID: LONGINT; var err1, err2: LONGINT; var item1, item2, errorMsg: Str255; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0E0A, $A82F; function DBBreak (sessID: LONGINT; abort: BOOLEAN; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $050B, $A82F; function DBGetItem (sessID, timeout: LONGINT; var dataType: DBType; var len, places, flags: INTEGER; buffer: Ptr; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $100C, $A82F; function DBUnGetItem (sessID: LONGINT; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $040D, $A82F; function DBKill (asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $020E, $A82F; function DBGetNewQuery (queryID: INTEGER; var query: QueryHandle): OSErr; inline $303C, $030F, $A82F; function DBDisposeQuery (query: QueryHandle): OSErr; inline $303C, $0210, $A82F; function DBStartQuery (var sessID: LONGINT; query: QueryHandle; statusProc: ProcPtr; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0811, $A82F; function DBGetQueryResults (sessID: LONGINT; var results: ResultsRecord; timeout: LONGINT; statusProc: ProcPtr; asyncPB: DBAsyncParmBlkPtr): OSErr; inline $303C, $0A12, $A82F; function DBResultsToText (results: ResultsRecord; var theText: Handle): OSErr; inline $303C, $0413, $A82F; function DBInstallResultHandler (dataType: DBType; theHandler: ProcPtr; isSysHandler: BOOLEAN): OSErr; inline $303C, $0514, $A82F; function DBRemoveResultHandler (dataType: DBType): OSErr; inline $303C, $0215, $A82F; function DBGetResultHandler (dataType: DBType; var theHandler: ProcPtr; getSysHandler: BOOLEAN): OSErr; inline $303C, $0516, $A82F; { UsingDatabaseAccess } implementation end.